/*
* 1. 读取文件内容 3个文件
* 2. 将读取出来的内容进行拼接
* 3. 将拼接的内容写入到  d.txt
* */

const fs = require('fs');

var f1 = './data/a.txt';
var f2 = './data/b.txt';
var f3 = './data/c.txt';

var f4 = './data/d.txt';


function readFile(path) {
    return new Promise(function (resolve, reject) {
        // Promise参数函数里面写异步代码
        fs.readFile(path, 'utf-8', function (error, data) {
            if (error) {
                reject(error);
            } else {
                resolve(data)
            }
        });
    })

}
function writeFile(path, content) {
    return new Promise(function (resolve, reject) {
        fs.writeFile(path, content, function (error) {
            if (error) {
                reject(error);
            } else {
                resolve('写入成功');
            }

        })
    })
}

async function run() {
    try {
        // await 等到的结果就是后面函数执行后 Promise resolve时候的返回值
        var f1Content = await readFile(f1);
        var f2Content = await readFile(f2);
        var f3Content = await readFile(f3);
        console.log(f1Content + f2Content + f3Content);
        var rs = await writeFile(f4, f1Content + f2Content + f3Content);
        console.log(rs);

    } catch (e) {
        // 如果 await 等到的函数里面的 Promise执行了 reject 则会执行到 catch里面
        console.log(e);
    }
}

run();


